import * as http from "@/utils/request";

/**
 * 获取所有文章
 * @param {number} category - 分类ID，默认值为 0，表示所有分类
 * @param {string} keyword - 关键词，默认值为 null，表示不筛选关键词
 * @returns {Promise<Object>} - 包含请求状态和数据的 Promise 对象
 */
export function getAllArticles(pageIndex = 0,pageSize = 20,category = 0, keyword = null) {
  return http.get(`/api/admin/Article/GetAll?pageIndex=${pageIndex}&pageSize=${pageSize}&category=${category}&keyword=${keyword}`);
}

/**
 * 根据 ID 获取文章
 * @param {number} id - 文章 ID
 * @returns {Promise<Object>} - 包含请求状态和数据的 Promise 对象
 */
export function getArticleById(id) {
  return http.get(`/api/admin/Article/GetById?id=${id}`);
}

/**
 * 添加文章
 * @param {Object} article - 文章信息，包含 title、content、category 和 tags 四个属性
 * @returns {Promise<Object>} - 包含请求状态和数据的 Promise 对象
 */
export function addArticle(article) {
  return http.post('/api/admin/Article/Add', article);
}

/**
 * 更新文章
 * @param {Object} article - 文章信息，包含 id、title、content、category 和 tags 五个属性
 * @returns {Promise<Object>} - 包含请求状态和数据的 Promise 对象
 */
export function updateArticle(article) {
  return http.post('/api/admin/Article/Update', article);
}

/**
 * 根据 ID 删除文章
 * @param {number} id - 文章 ID
 * @returns {Promise<Object>} - 包含请求状态和数据的 Promise 对象
 */
export function deleteArticleById(id) {
  return http.get(`/api/admin/Article/Delete?id=${id}`);
}

/**
 * 批量删除文章
 * @param {array} array - 被删除的Id数组
 */
export function deleteBatchArticle(array) {
  return http.post('/api/admin/Article/DeleteBatch',array);
}

/**
 * 上传图片/视频
 * @param {FormData} formData 上传表单数据
 * @returns Promise
 */
 export function uploadMedia(formData) {
  return http.post('/api/admin/Article/UploadMedia', formData, {
    headers: { 'Content-Type': 'multipart/form-data' }
  });
}

/**
 * 改变文章显示状态
 * @param {number} id 
 * @param {boolean} display 
 * @returns 
 */
export function changeDisplay(id,display){
  return http.get('/api/admin/Article/ChangeDisplay',{id,display});
}